In modern computer systems, vast amounts of data may need to be accessed by hundreds, thousands or even millions of different entities, including persons and of persons groups (e.g., organizations). Accordingly, computer systems have been developed in which data is stored on multiple physical storage devices (“PSDs”) including, but not limited to magnetic tape, disk drives, solid state storage devices (SSDs, e.g., flash drives) or portions thereof. Typically, these PSDs are grouped together as part of one or more data storage systems (e.g., storage arrays), for example, data storage systems made available by EMC Corporation, headquartered in Hopkinton, Mass. (“EMC”).
Entities typically access the data on such data storage systems via one or more host systems (i.e., “hosts”) for which communication paths have been established over one or more communication media (e.g., as part of a network) between ports of the host systems and ports of the data storage systems. Through the host systems, data of the data storage system may be accessed and modified using I/O operations, for example, read and write operations. To this end, data storage systems may provide storage services to host systems (e.g., servers). Host systems typically do not address the PSDs of the storage system directly, but rather, access the PSDs by addressing virtual (i.e., logical) storage units (VSUs) such as, for example, logical devices, logical volumes (LVs), thin devices and storage groups, which hide the details of actual physical storage from the host.
To save storage space on a data storage system, data to be written to a non-volatile medium of the storage system disk may be compressed before being stored so the data takes up less storage space. However, compressing the data, and decompressing it in response to a read I/O operation consumes system resources, including CPU cycles and internal bandwidth, and also can increase I/O latency.